package com.alibaba.citrus.cr.platform.enhance.repository;

import java.util.List;
import java.util.Map;

import com.alibaba.lattice2.epoch.sdk.model.Result;

import com.epoch.app.crplatformenhance.model.dto.*;
import com.epoch.app.crplatformenhance.sdo.StrategySDO;
import com.epoch.app.crplatformenhance.strategy.dto.QueryValidStrategyListRequest;

public interface StrategyQueryRepository {

    /**
     * 分页查询策略列表
     * @param request request
     * @return List<StrategyPageQueryResponse>
     */
    Result<List<StrategyPageQueryResponse>> pageQuery(StrategyPageQueryRequest request);

    /**
     * 根据id查询策略详情
     * @param request request
     * @return StrategyQueryByIdResponse
     */
    Result<StrategyQueryByIdResponse> queryById(StrategyQueryByIdRequest request);

    /**
     * 向外提供的多条件查询策略
     * @param request
     * @return
     */
    Result<MoreConditionQueryResponse> moreConditionQuery(MoreConditionQueryRequest request, Map<String ,String> codeAndValue);


    List<String> checkStrategy(CreateDailyInventoryRequest request);

    /**
     * 库存分解时进行查询
     * @param
     * @return
     */
    List<StrategySDO> queryStrategyList();

    /**
     * 根据组织查询有效策略集合
     * @param
     * @return
     */
    List<StrategySDO> queryValidStrategyList(QueryValidStrategyListRequest queryValidStrategyListRequest);
}
